package com.example.commons.math;

import java.math.BigDecimal;

/**
 * BigDecimal.ROUND_UP
 * 无条件进1，1.01 ->1.1
 * BigDecimal.ROUND_DOWN
 * 无条件舍弃，1.09 -> 1.0
 * BigDecimal.ROUND_HALF_UP
 * 四舍五入
 * BigDecimal.ROUND_HALF_DOWN
 * 五舍六入，即舍弃部分大于等于6才会进1
 * BigDecimal.ROUND_CEILING
 * 向正无穷方向舍弃，1.01  -> 1.1
 * BigDecimal.ROUND_FLOOR
 * 向负无穷方向舍弃，1.09  -> 1.0
 * BigDecimal.ROUND_HALF_EVEN
 * 当舍弃部分的左边是奇数时，表现同ROUND_HALF_UP（四舍五入）
 * 当舍弃部分的左边是偶数时，表现同ROUND_HALF_DOWN（五舍六入）
 * BigDecimal.ROUND_UNNECESSARY
 * Assert操作，证明计算是准确的，不需要round
 * System.out.println(new BigDecimal(1.25).setScale(1, BigDecimal.ROUND_HALF_UP).setScale(1, BigDecimal.ROUND_UNNECESSARY));
 */
public class Decimal {

    /**
     * 比较大小
     * a < b 返回-1
     * a = b 返回 0
     * a > b 返回 1
     *
     * @param a
     * @param b
     * @return
     */
    public static int bigOrSmall(String a, String b) {
        BigDecimal a1 = new BigDecimal(a);
        BigDecimal b1 = new BigDecimal(b);
        return a1.compareTo(b1);
    }
}
